package com.glsc.ngateway.platform.dto;

import com.glsc.ngateway.platform.utils.YESNO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author guoj
 * @description: 应用详情明细
 * @date 2024/8/9 10:09
 */
@Data
@Builder
@AllArgsConstructor
@ToString
@NoArgsConstructor
@ApiModel("新增应用详情明细信息dto")
public class IpDetailInfoDto implements Serializable {
    private static final long serialVersionUID = -7934123424178694089L;
    @ApiModelProperty(value = "IP信息id")
    private Long ipInfoId;
    @ApiModelProperty(value = "系统名称")
    private String systemName;
    @ApiModelProperty(value = "系统编号")
    @NotBlank(message = "系统编号不能为空")
    private String systemClassNo;
    @ApiModelProperty(value = "系统大类")
    @NotBlank(message = "系统大类不能为空")
    private String mainClass;
    @ApiModelProperty(value = "系统小类")
    @NotBlank(message = "系统小类不能为空")
    private String systemClass;

    //应用类别的删除操作为真删除，删除后此处无法通过id找到对应值，
    // 因此此处同时保存了应用类别id和值。
    // 应用类别删除后，通过id无法从应用类别表中找到数据，但此处应用类别仍有值
    @ApiModelProperty(value = "应用类别")
    private String componentCategory;
    @ApiModelProperty(value = "应用类别Id")
    @NotNull(message = "应用类别Id不能为空")
    private Long componentCategoryId;
    @ApiModelProperty(value = "应用名称")
    @NotBlank(message = "应用名称不能为空")
    private String componentName;

    //默认带出应用类别路径（必填）
    @ApiModelProperty(value = "安装路径")
    @NotBlank(message = "安装路径不能为空")
    private String componentPath;
    //主 备 yesno
    @ApiModelProperty(value = "主灾标识 主备yesno")
    @YESNO(message="主灾标识取值只能为 主/备")
    private String mainOrBackup;
    //正常 故障 yesno
    @ApiModelProperty(value = "运行状态 正常故障yesno")
    @YESNO(message = "运行状态取值只能为 正常/故障")
    private String runStatus;
    // 是否 yesno
    @ApiModelProperty(value = "是否独占 是否yesno")
    @YESNO(message = "独占字段只能取值 是/否")
    private String exclusive;
    @ApiModelProperty(value = "占用比例")
    @NotNull(message = "系统编号不能为空")
    private BigDecimal sourceAllocation;
}
